函数：      <br/>
1，函数的默认参数，ES5 和 ES6 的默认参数都是什么样的？<br/>
2，默认值对arguments 对象影响 <br/>
	arguments 对象是什么？准确来说： 一个 ”类数组对象“ <br/>
3，arguments在严格模式下不能修改默认值 <br/>
4，... （展开运算符）参数就是不定参数，它表示一个数组 <br/>
5，箭头函数 和 普通函数的区别是 <br/>
	。箭头函数没有this,  函数内部的 this 来自父级最近的 “非箭头函数”，  并且不能改变this的指向 <br/>
	。箭头函数没有super (super 父的方法， 这里没有 this， 因此没有super) <br/>
	。箭头函数没有 arguments    <br/>
	。箭头函数没有 new.target  绑定   <br/>
	。不能使用 new   <br/>
	。没有原型       <br/>
	。不支持重复的命名参数  <br/>





1，<br/>
	ES5 默认参数是什么样的   <br/>
	<script>
		function a(num, callback) {
			num = num || 6;
			callback = callback || function (data) {console.log('a方法内部的数据', data)}
			callback(num * num)
		}
		a() // 36  ES5方式

		// 你还可以这样使用callback
		a(10, function(data) {
			console.log(data * 10) // 1000
		})
	</script>

	ES6 默认参数是什么样的   <br/>
	<script>
		function b(num = 6, callback = function (data) {console.log('b方法内部的数据', data)}) {
			callback(num * num)
		}
		b() // 36 ES6方式

		b(10, function(data) {
			console.log(data * 10) // 1000
		})
	</script>

2， <br/>
	arguments 不添加 ES6 默认值，看起来一切正常 <br/>
	<script>
		function c(num, b) {
            console.log(arguments) // {"0": 6, "1": 10}   类数组对象： Arguments(2) [6, 10, callee: ƒ。。。。。
            console.log(arguments.length) // 2
		}
		c(6, 10)
	</script>
	arguments 添加   ES6 默认值，默认值不被arguments 识别 <br/>
	<script>
		function d(num = 1, b = 1) {
            console.log(arguments)
		}
		d()  // {} 默认值不能被 arguments识别
		d(6, 10) // 识别到 arguments 对象 ，// {"0": 6, "1": 10}   类数组对象： Arguments(2) [6, 10, callee: ƒ。。。。。
	</script>
4， <br/>
	...   展开运算符的使用，不定参数  <br/>
	<script>
		function add(...arr) {
            console.log('e + f', e + f) // 3
		}
		let e = 1, f = 2
		add(e, f)
	</script>
	...   展开运算符 不定参数的 使用限制,  必须放在所有参数的末尾  <br/>
	<script>
		function add2( i, ...arr) {
            console.log('g + h', g + h)  // 3
		}
		let g = 1, h = 2, i = 3
		add(g, h, i)
	</script>



































